更优美的python日志管理库Loguru 您所在的位置:网站首页 python log库 更优美的python日志管理库Loguru

更优美的python日志管理库Loguru

2023-09-27 23:52| 来源: 网络整理| 查看: 265

一、Loguru简介

Loguru的主旨就是让程序员能方便优美的实现日志记录。您还记得配置记录器的繁琐过程吗?因为对此感到厌烦?让我们看看以前python日志记录器的创建过程吧。

import logging #创建日志级别 logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) #创建日志文件 handler_warn = logging.FileHandler('warning_log.txt') handler_warn.setLevel(logging.INFO) #定义日志格式 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler_warn.setFormatter(formatter) #将日志处理程序记录到记录器 logger.addHandler(handler_warn)

以上还是最简单的配置过程,是否感到很繁琐。确实如此,但是记录是每个应用程序的基础,并简化了调试过程。使用Loguru,您没有理由不从一开始就使用日志记录,这很简单。只需要引入loguru库即可,而且loguru的性能也非常好,因为Loguru的关键功能将以C语言实现,以实现最高速度。

from loguru import logger

另外,该库旨在通过添加一堆有用的功能来减轻Python日志记录的痛苦,这些功能可以解决标准记录器的问题。在您的应用程序中使用日志应该是自动的,Loguru试图使其变得既愉快又强大。

二、Loguru安装

安装方法很简单。

pip install loguru 三、Loguru使用 1、简单使用 from loguru import logger logger.debug("That's it, beautiful and simple logging!")

结果显示彩色,非常的优美。

2、日志格式

根据自己的需求配置日志格式,也非常简单,只需要简单配置即可完成。如下:

import sys from loguru import logger #配置日志格式 logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO") logger.info("That's it, beautiful and simple logging!") logger.debug("That's debug") logger.warning("That's warning")

结果,不同的颜色显示:

3、日志文件

如果要将记录的消息保存到文件,则只需使用字符串路径作为接收器。配置如下:

logger.add("file_{time}.log")

如果需要设置日志文件大小、删除较旧的日志文件或希望在关闭时压缩文件,并设置压缩格式,这些都可以进行配置,而且配置起来非常简单。如下:

#rotation参数 logger.add("file_1.log", rotation="500 MB") # 设置日志文件大小 logger.add("file_2.log", rotation="12:00") # 中午12点创建日志文件 logger.add("file_3.log", rotation="1 week") # 一周创建一个日志文件 #retention参数 logger.add("file_X.log", retention="10 days") # 日志文件最长保留 10 天 #compression参数 logger.add("file_Y.log", compression="zip") # 日志文件压缩格式为ZIP 4、字符串格式化

Loguru倾向于使用更优雅,更强大的{}格式%,日志记录功能实际上等效于str.format()。

logger.info("If you're using Python {}, prefer {feature} of course!", 3.6, feature="f-strings")

结果:

5、Traceback捕获

您是否曾经看到程序意外崩溃而没有在日志文件中看到任何内容?您是否注意到没有记录线程中发生的异常?这可以使用catch()装饰器/上下文管理器解决,该管理器可以确保将任何错误信息正确保存到logger中。配置如下:

import sys from loguru import logger @logger.catch def my_function(x, y, z): # An error? It's caught anyway! return 1 / (x + y + z) my_function(1,-1,0)

结果:

6、色彩斑斓的日志

如果您的终端兼容,Loguru会自动为日志添加颜色。您可以通过使用接收器格式来自定义自己喜欢的样式。配置方式如下:

logger.add(sys.stderr, colorize=True, format="{time} {message}",level="DEBUG")

结果,DEBUG及以上的信息或被自定义显示样式。

7、异步写入日志

logger默认情况下,添加到的所有接收器都是线程安全的。它们不是多进程安全的,但是您可以enqueue通过消息来确保日志的完整性。如果要异步记录,也可以使用相同的参数。

logger.add("somefile.log", enqueue=True) 8、序列化日志

希望对日志进行序列化以便于解析或传递日志?使用该serialize参数,每条日志消息在发送到已配置的接收器之前将转换为JSON字符串。

logger.add(custom_sink_function, serialize=True) 9、配置日期格式 logger.add(sys.stderr, format="{time:YYYY-MM-DD at HH:mm:ss} | {level} | {message}",level="DEBUG") logger.info("If you're using Python {}, prefer {feature} of course!", 3.6, feature="f-strings") logger.debug("That's debug") logger.warning("That's warning")

结果:

10、配置编码格式 logger.add(log_file_path, rotation="500 MB", encoding='utf8')

还有更多的配置方法,详细请参考官方文档。

四、参考

1、官方文档:https://loguru.readthedocs.io/en/stable/overview.html

2、官方github: https://github.com/Delgan/loguru



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有